#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>


#define MAX_LEN 100


void input_handler(int num)
{
    char data[MAX_LEN];
    int len = read(STDIN_FILENO,&data,MAX_LEN);
    data[len]  = 0;
    printf("input : %s \n",data);

}

int main()
{
    int oldflags = 0;
    signal(SIGIO,input_handler);
    fcntl(STDIN_FILENO,F_SETOWN,getpid());
    oldflags = fcntl(STDIN_FILENO,F_GETFL);
    fcntl(STDIN_FILENO,F_SETFL,oldflags | FASYNC);
    while(1);
}